Restructured for best use of rust modules