part-1 of demo 2. compile-time reflection