updated classes to better handle updating.