fix: parse_all should be a method of MassObject
break up and mildly refactor Associatable
rewrite Associatable#has_one_through