cylinder widget implementation