initial core code push

NOTE: sample.py / so.py rely on being run from "code" directory
Further, newlines in text entry in csv files are messing things up
remaining TODO: sanitize csv file (remove newlines from fields)