added library methods from princton site