added layer for base classes to override pre/post/process methods