Refactored out the unnecessary interface-nesting which might look nice
but really makes developing only more awkward