Added a few features, crossed some TODOs off the list