move the reusable portion of this program to a different package