Begin interfacing, put all the things in unique pointers