Self-configuring components approach to product variant development