almost everything but assembly generation
function signature generation