(#26) - add promises