test functions
add remaining tests