This is a lot of instance variables. Are they all necessary?