use reified element type from supertype (performance opt)
add @Override
roll back breaking change
fix #275