Create @base_class decorator to set ABCMeta
Move Undefined type to typing
Remove value is not None in init_value
Update Manifest and setup.py to include typing package