feat(modal): add $modal service