filled out functions