Separate into a executable and a library.