creating type casting framework