Probably adjust all business logic to using hashes, fix some of pm.rb, some will need rewriting when join arrays are implemented