Initial Refactor