Move implementation files to lib