only committing because I'm taking a break. just implemented some of the functions to go.