implemented explain