* Replace eval with strategy * Use Factory Pattern, add tests * Add missing dockblocks * Replace strategy with simple object