further refactors row class