Changed some callbacks to promises, added request tests