add examples and better error handling