rewrote calculate_tip() because the old way was retarded and complicated