simpler compiler implementation