I thought this is how it works for most software. What are the exceptions to this rule?