reduce function call overheads