added some documentation so i'd stop having to remember what things mean