controller overhaul:
- add IP based access control
- add better logging
- returns more descriptive HTTP status codes and messages
- more idiomatic Rails-isms