Updated to use new component API