changed to dependency injection to interface