tests for all functions except the implementation functions added