// use promises, looks like Haskell, neat!