Initial rough commit. Doesn't build or run yet