documentation and making more stuff private