added more functions and allowed for accurate division