fixed #1 fixed2 fixed#3