optimize and update software structure