documentation edits + abstraction cleanup