struct -> interface