updated explaination