top-level compile methods