visibility and extensibility