It should be possible to put the core functionality into a library which can be reused by other projects.