First try at native js promises