implemented division