implemented some methods