I've separated the "main" code initially, and also changed the PDB reader to use openmm.app