Added more functionality, still a lot to do