added tuple support