change the software structure