This type checking is also weird...