Refactored the way the JSON analyze the class with annotations and
implemented most of the things about converting back from JSon