documented everything and added a lot