Restructure package with interfaces and move definitions into a repository