add initial 3-D functionality, still needs transforms