Moved DataNodeExtender to core and made it cope with generic types.