first implementation of enh-3
second implementation of enh-3
merge master with enh-3