including some supporting code