added some discussion
merged versions