rearrange repo for better testability; work on codereview task