Refactor and test and bump