Providing Easy To Use And Fast Programming Support For Non-Volatile Memories