introduced some underscore functions