clean code, refatctor