better comon structure