abstract final product