Finish Component API first draft