These methods should not be attempted all at once; begin with one, and then start implementing the rest of them afterward.