moved enumerable to separate file
use Delegator instead of undefining methods