again very similar I'd refactor that too