added custom options functionality