Moved all decode logic to the typeConverter