adding library and module snapshot functionality