added unit tests for the rest of the function suite