Simplify interface and implementation