now uses spring dependency injection