Example and interface, also enforce types