support reflection-less mapping