migrated SqlProgrammabilityProvider
done with refatoring