F28: Refactor components.

Also worked on:
F44: Add Enabled property to the components.
F16: Improve components ierarchy.