extra type removed
better name for type
renamed labelled arg
removed mli of included module to cut down on the boiler plate