Implement Initial version
Switch from this to arguments for components.