initial commit of a messy version