Initial code commit. Not quite working yet.