better to start from unit tests