refactored extensionpoints