Some sturcture changes, better path class