Implement apply()