Use command pattern.