added is_a and other fixes