moved wireMap to using a list of keys instead of requiring enumerable
wall grows
adding strictness annotations because why not