using protobuffers
remove hacks with clean classes