Complete refactor with more detail.
Add readmes.
Fix naming of class attribute.