refactoring less sctructure