updated divide a little bit. still need to fix its float issue and the last two scenarios