version 1.0 refactor