requirements data binding and functions