complete explaination