implement numerical part