Use promises everywhere it is possible, so errors are must better handled