added PD destroy function
free_page now returns when no page is found
removed unneeded assert