components controller