Major Refactor and Residence Resource

Well java adds a default constructor so this doesn't hurt but I've always just created a default blank constructor anyway.