slightly nicer interface