data goes first