modified by hejian for tag