This is in beta form and is not complete.
Feel free to make suggestions on what you want me to add in the comments.