init, add strategy pattern