html table abstraction layer