add type-checking helpers + test