interface abstraction
comment karma for now