examples: move around to avoid overloading main