Updated code for better args support
upping test coverage and breaking apart tests