fixed #3, add more options