Problems 4 - 7 completed. Refactor later