revized architecture #1