use flat representation