Refactored the page component to handle the common base operations of each component
Updated each component to use the base implementation