Most workings done :D