added more options and tested thoroughly