Is there any reason that a user has to call this? can this function be called from constructors?