seems to work - direct gaussian elimination