Move composition requests into their own service