finished #2 and #3 and added unit tests for the non display one