added isFinal