tutorial 13, interface, custom types