some approuvments without any test, todo test and debug