A: add type checking code