reference and discussion added