Added a TablePageComponent and refactored that table library as required