What are the benefits of using crate as translation unit instead of a source file?