refactoring in process, reroll need changes, need to clean up code