add some safety checks so the core overwrites can't be called more than once