Major overhaul to add schemes. Everything should be backwards compatible.