almost there, on to the tests though...