More objectization, Component class and docs