implemented base working model