implementation fix
refactor