Major refactor
Major Refactor and work in progress