Messing about with dependency injection
All buttons now use DI