Chris refactor

I've had a go at tidying up the tests and methods along the lines discussed