stucture and some methods added