establish basic functionality