compilation form. step0