Coupling concerns

Hello, this lib is great !

But since relying on concrete class when type-hinting parameters is a bad practice (LSP), I've added an interface to this service for loose-coupling.

In the process I've added some missing visibility keywords to follow PSR-2

Hope this helps :beers: