Rethink compilation