refactor
add more check for method and attr
add name_lookup to recursive lookup name in parent class
branch typing fix
fix dispatch type