refactor to use apache commons lang