better separation of concerns between TypeRecognizer and BasicConstruct transformers
cleanup and rename things