Techniques and heuristics for improving the visual design of software agreements