improve arguments handling