+ more work on a proper gradient model