improved arguments handling