consistent function order