Applying the property pattern to the memory map.

This massively tidies up the __init__ and makes more sense