file mode abstraction implemented
documentation edits