added option constructor