redo of functional style (results are the same)