improved the interface