First working version

the main four operation are working