refactoring ready for version 0.08