changed promise stuff