PUTTING THE MAGIC BACK INTO SOFTWARE