Added docs to most of concerns

Also some refactoring