refactoring. introduced guardFileExists & guardAbsolutePath