more work on OOP
segment object
conflict resolved
more work on segment, kernel, and edge objects