updated docs, reorganized class structure