Restructured to fit go imports