modified something and added some methods