calculator fully functional