refactor done
tests for all os