finished, but with one bug