Move map initialization to abstract class.
Use better names.
Use Commons Lang ClassUtils instead of custom methods.
Avoid repeating code.