improvements such as using bitmap sources exist