Add documentation + refaktoring