add default params, add exceptions for missing args