0.1.3 split out core functionality