private util methods