Comitting before we implement a trait for some of this functionality so I can diff between the two