roll core-ajax into component