fix bug in event X, add grunt