added typehints