previous code
a suggestion
final update