implement some methods