modify software structure