Added all final functionality