add type testing functions