Use same abstract code for wrapper and model