declaration vs definition explained