fixed #1 and #3