add todo: add clamp when lazy mix with self