Added all the basic functionality