added dipol implementation