commented abstract component and behavior