improving type reflection