add varargs support or logger function