added properties, edited functions