removed call, copy, and linear fornow