Restructured project
Tidied up code somewhat
Updated structure with JSHint suggestions & changes to improve testability