commit 3 : working full (not refactored)