catch up to version up and refactored some code