Implemeted DDD Pattern