Getting there - most functionality implemented.  Need to do map