refactor. improve ux.