all test passing and all functionality correct