modifications and exceptions
Add type hinting