add functoid spec and alias it as tap
add tests