added typehint