Tidied up some field types. Changed duration to return progress if progress is larger than duration and there is a duration