Added all of the basic functionality