Major Refactoring - In Progress