refactoring complete - decent structure is now present... time to add features :-)