added height cache and random color picking