fixed #2 and #4