adding some commenting, need to figure out tests