begin converting sync methods to promises