Prevent direct access to some components
Use proper component get method
Remove id from component types