My original solution