first batch of * functions