altered the interface a lot