Better structure, better error handling
...