refactoring + fix1.0