full mapfile, but inefficient