basic classes and problems from Cracking the Coding Interview