A critical review on preparation of Fe3O4 Magnetic Nanoparticles and their potential applications