Moved the interface into their own files.