started implementing FactoryInterface and InvalidArgumentException generation. Also started refactoring of internal methods (move all method dependencies to method parameters)
added delete strategy
implemented FactoryInterface and InvalidArgumentException creation