LTC: C++ bindings?/Why is this in torch/csrc not ATen?

I’ve been looking into the upcoming lazy tensor support, and I don’t understand why it’s in torch/csrc rather than ATen. I’ve noticed there’s a few other components that seem to do this (distribution and jit), is there a reason or heuristic behind it?

The reason this came up was because I was (very tentatively) looking at creating Java bindings for it for a project of mine, and had planed on using ATen as the base. Using torch/csrc as a binding source is likely not possible (I don’t want to include python), is there any alternative?