updated definitions of underscore to be strongly typed