add final behavior