ok, so why do we need it?