re-implement collins 1999