Tidying up some code and adding comments
Added JSON annotations to the ExchangeSpecification to allow it to be configured externally