Add Type Inference