updated general diagram