Separate response parsing from model