@britter about the names `fieldNamePrefix` and `Sufix` I completely agree with you.. I'll change that..
and about the implementation: I have done this way because I think this way the code stays more clear and easy to maintain.. once the the subclass is an inner class I think the change I've done isn't a problem at all.. but I can change if you think is better