3* refactored after mentor's comments