refactoring - reduce arguments usage, avoid unnecessary projection