this will explain everything