demo of three-stage compilation