some general modules that are used frequently