major refactor part I
major refactor part II, vectors
prototyping of vectors okay now