issue#1 issue#2 issue#3 and some improvements