refactoring towards v1.0