way way better explanation :)