added additional data types for increased accuracy/speed