Camera service now uses promises