Carbon based Non-volatile Memory Devices