Another approach
Don't think the hasmapto piece works right, but...bug later