I examine the classic problem of fair division of a piecewise homogeneous good. Previous work developed algorithms satisfying various combinations of fairness notions (such as proportionality, envy-freeness, equitability, and Pareto-optimality). However, this previous work assumed that all utility functions are additive. Recognizing that additive functions accurately model utility only in certain situations, I investigate superadditive and subadditive utility functions. Next, I propose a new division protocol that utilizes nonlinear programming and test it on a sample instance. Finally, I prove theoretical results that address (a) relationships between fairness notions, and (b) the orthogonal issue of division efficiency (i.e., the price of satisfying particular fairness notions).