much better interface abstraction