specific constructors and methods to check for special cases of updates