Designed and implemented base classes