changed library design