Replacing for Promise
Replacing throw keyword for Error
Inserting some docs and refoctoring the Model a little bit