moved argument check to precondition class