initial commit, with the two primary functions