use extension methods instead of separate interface/class for higher level actions