What Ideas Can Be Patented In Software