argument check added