make TwObj a GADT. remove "c++ style"  boilerplate