- Factor out various components to different packages - Add abstract command package to allow for calling go funcs etc. at runtime.