add signature handling
add introspection XML marshaling
add tests