some structure changes ... mh