more readable interface