now uses TLBs properly but inefficient use of PTEs