Crate pattern
Vendor pattern