third commit- it has all the required except the paging.