Add further strategy pattern for open close principle.