solution with DOLIST