Add Type Checking