elim warnings
elim hlint warnings
generalization
better test environment