add options implementation