fixed #3, fixed #5