Going to say this resolves #4, it can be improved in future but it will do for now