I've been wanting to refactor out the core forever functionality into a different library which the CLI tool depends on