refactor and bump version