implemented typeof