# Guidelines

## Learning more

Beyond the sequence of examples provided here, the Logisim source code provides copious additional examples, though they do not always illustrate the same attention to readability and good design.

For maximum portability to future versions, you should stick as much as possible to the classes in the ...`instance`, ...`data`, and ...`tools` packages. Of course, you may use other packages' APIs, but they are more vulnerable to changes in future versions of Logisim.

I am generally willing to answer occasional requests for help. And bug reports and suggestions for improvements, of course, are always welcome.

## Distribution

You are free to distribute any JARs you develop without restriction. The GPL restrictions do apply, however, if portions of your work are derived from portions of Logisim source code (released under the GPL). Deriving from the example code in this section of the User's Guide does not incur such restrictions; these examples are released under the MIT license.

If you would like to share your library with other Logisim users, I will be happy to provide a link to a hosting Web page or the JAR file itself through the Logisim Web site. If you think your library should be built into the basic Logisim release, then I welcome your suggestion, and I'll be happy to acknowledge your contribution in Logisim releases including the work.

Next: User's Guide.