optimize constructure