restructured lib