case classes and util functions were moved to package object