table design needs more refactoring. this is a placeholder design document for tables