now operating on custom classes