set as functions rather than var