design model, algorithm