added explicit type hinting