added .then promises methods