initial commit for promises branch