refactoring for 0.6.0