Lots more functionality done, time for a commit