issue #14: custom enhancers

refactored enhanced elements to use ElementEnhancer base class.