bugs solved, communication seems to work properly TODO: TEST IT