added some type hints