finished type hinting all possible methods