refactoring 2
r