add type hints