implements Cylinder class