added some methods to interfaces, wrote some comments