refactor for version 0.02