made main class objects first class citizens
package refactor
switched to sets on principle objects, implemented dijkstra
finished set conversion, finished dijkstra test
added asserts
Merge remote-tracking branch 'origin/master'