with few changes in library