added SystemUtils, refractor