Describe how to control the whole type casting process