Convert user to use promises