uses all args