Refactor v 1