Added lots of functioallity