add some flexibilities