[Software patents] The good, the bad, and the messy