Unit tests ready for review. All requirements have been implemented.