add tracker factory and abstract adapter for tracker
bring it up to standard PSR-2