refactoring around Args implementation