add isFirst flag