adding explanation and abstract