Fix bug in impl :)
Support for 3.
Failing test for 4.