moved individual types to own modules