Cleaned the class up a lot, genericised it somewhat