small refactor + expand type check feature and speed
concepts of `type` and `init_class` separated