using instance variables and not intransparent type
rewritten instance variable
removed accessor for name