ref: N25B-334
ref: N25B-299
Redid testing structure, added tests and changed some tests. ref: N25B-301