Add a few new features and complete all docblocks