Testing refactored, completed and passing for everything added so far