read structure [ci skip]