Since there is a set_user(self, user) why not have def get_user(self): return self.user Also why not have included into Session class: def __setitem__(self,name,value): self._items[name]=value self._has_info=True #we have info! def __getitem__(self,name): if self._items.has_key(name): return self._items[name] return None def get(self,name,defaultvalue=''): value = self[name] if value is None: value = defaultvalue return value Ioan