now know how to design and implement the error handling system,
a lot of stuffs to do