new tests, some init refactor, add strerror