Broke implementation out ot its own file.
Broke typemaps out into target language specific file.