Revised to include one-jar bundling and initial refactor to clean up / design right