Model: all methods are now promises

Otherwise, it's not well defined whether the method throws an erorr or returns it in a promise