more.. abstraction...