divide implemented