make def to lazy val to speed up code