Added all the previously implemented code