Problem 11: improve