add subf.
almost working !
hang when downcount is under 0