updated replciation diagram