provider + directive almost done