added explainations