working version with most whistles and bells