[FEATURE] Fixed coupling in classes so that its easier to mock and also to use DI