More functionality. Broken.

Will need to refactor (again)....