Solution by lacek96