less bad
final code