restructuring and library addition