In Corda, I understand that any CorDapp JAR that includes a class implementing the contract interface will be automatically uploaded to the node as an attachment and propagated to other nodes as part of contract verification so that they have a copy of the contract.
How can I structure my CorDapp so that the JAR only includes definitions of shared resources, such as contracts and states, and nothing that includes proprietary logic, such as flows?