Move gen-datatype
Move gen-protocol
Remove redundant gen-protocol implementation