added attribute tracking to models