too many arguments to set. there has to be a better way