tests, type work
add signature test
add function test