first iteration of library seems complete