trying to polish the interface a bit