updated description. clarified messages, and clarified code massively