use add & delFlags instead of setFlags