id -> empty, op -> append