keeping internal and external version in sync