refactoring; simpleobejctpool