reworking compile