Main author ----------- Dan Horak Contributors ------------