Add format guesser
Refactor DI