started to refactor for v1.0.0