operations are now trait-able methods