user-defined methods