this is the primary structure of this crate
this is a trait which implements the interface of possible inputs (usually byte slices)