detailed explanation