Add FluentAssertions
Rewrote tests

Use fine-grainer tests to ease tracking bugs