algorithm desc