a start towards allowing more types