Fixed out of order product & func using ids