use two tables to spare some bytes