finished subtask3 and tests