moved core logic into separate jar (outside of plugin project)