Final commit for new features

Please test this before submission.