added all the asserts needed