Implement functions for programming assignment 2