accept only nonnegative levels