changed interface a bit