new structure + extend method