Added comments, changed pumping to more reasonable