refacor for lint
test to 100%