Refactor 2d

Ready for merge.  Lookin at you, Caswell
should be `if len(lbl_to_add) > 0:` I think