Набросал побыстрому
решение
Позвольте отметить несколько моментов:
1) Вы создаете 3 контроллера с разными названиями, которые делают одно и то же. Видимо вы не понимаете, что каждый раз контроллер инстанциируется независимо от предыдущих. Вам не нужно объявлять отдельную функцию для каждого контроллера
2) Как уже сказали выше вы можете в данном случае обойтись вообще одним контроллером, либо сделать изолированные компоненты, что сложнее, но зато API будет очень чистый и понятный
3) Не понятно почему для декремента вы вынесли отдельную функцию, а для инкремента пользуетесь просто eval'ом. Код должен иметь одинаковую структуру и разделен на логические блоки.
4) Очень много дублирования кода
Прежде чем лезть в дебри, вам необходимо понять этот базовый пример, иначе дальше будет очень больно
P.S. Вариант решения, приведенный мной, - один из сотни, наверное.