Suffixed interface's with 'Interface'
Lots of work making the code more testable, implementing interfaces throughout