fixed dependency injection, generous commenting, added permissions - breaking for lunch