added widget implementation