Development of general finite differences for complex geometries using immersed boundary method