refined im-run and im-cycle