complete all methods