A software-defined future