initial implementation of 3d viewer