issue #33
clean code