added OnBeforeMapping
private -> protected