should this be moved to the superclass?  It looks like it's common functionalty