Massive Refactoring work - SETTLED ON A NAME!