restructure and add new classes