rename and add some methods