Adding some more functionality, still not quite right