move linalg stuff around