adding some more primitive operations