Trying to simplify things
Trying to clean up the code a bit
Added an interface and I run most of the tests through that