adding initial version
adding revised version