implement complex parameters