boolean test
add function test
add subroutines