change Callback to Functor; added tests for else counters; fix issue when passing symbols into functor; wip