Added some type annotations
Refactored the Json loader load method into the Supports\Json trait to avoid code duplication