cleanup
add a bunch of basic type conversion support