My first try at this problem with one major spec passing