complete redesign and refactoring for version 1.0.0