type hints to remove refelction