some rough design docs