synchronize all methods and protect initialize from being called more
that once.