unfinished. many changes and things to add before run