refactor ready for gon