bleck
constructor
refactor + better tests
refactor, tests, docs