Everything I'd want in an app and more