move direct type into its own module