updated and simplified interface