split source

I have split the source code into several projects.