implemented a few methods