--- myst: html_meta: "description": "" "property=og:description": "" "property=og:title": "" "keywords": "" --- (plone5-eggs2-label)= # Creating Reusable Packages We already created the package {py:mod}`ploneconf.site` much earlier. In this part you will: - Build your own standalone egg. Topics covered: - {py:mod}`mr.bob` Now you are going to create a feature that is independent of the ploneconf site and can be reused in other packages. To make the distinction clear, this is not a package from the namespace {samp}`ploneconf` but from {samp}`starzel`. We are going to add a voting behavior. For this we need: > - A behavior that stores its data in annotations > - A viewlet to present the votes > - A bit of JavaScript > - A bit of CSS > - Some helper views so that the JavaScript code can communicate with Plone We move to the {file}`src` directory and again use a script called {file}`mrbob` from our project's {file}`bin` directory and the template from `bobtemplates.plone` to create the package. If the {file}`src` directory does not exist yet, create it: ```shell mkdir src ``` Go inside the {file}`src` folder and create the package: ```shell cd src $ ../bin/mrbob -O starzel.votable_behavior bobtemplates.plone:addon ``` We press {kbd}`Enter` to all questions *except* our personal data and the Plone version. Here we enter {kbd}`5.2`.