service loader no longer needs calling directory as an argument