added inline documentation, reqorganized object classes