Initial commit, copied code from CS 61AS repo