inlining and type inferencing