update spec to match
make some factories for the provider and user
add demo task for generating providers