We need a much better way to handle these kinds of shared attributes. The yuckiness of this class disgusts me :)