Migrate and implement type parameter and bounds