fix some incompelete implemention