set up basic functionality