Resource management

Closes #22
Looks a bit ugly with all those `unwrap()` things (cleanup PRs are welcome!), but functional and safe from the user perspective.