Working version with some tests
ignore