added tests and allowed option types