just the very basics of an interface, probably wrong