moving types to their own files