data and logic added