A skeleton for building question components