a few basic functions for prelude