source code link
Adds error handling