add REQUIED METHODS