Be smarter about initial positioning by adding a 'placeInViewport' method