logical_id and product in session

finished changing test and session to logical_id and handled API for product name/version in session
Why is this constructor needed? I think the default behavior of SQLAlchemy is ok here...