added numerical functions