Implemented as per assignment spec