#8 abstract table, factory