refactor take 2