custom class support