all base functionality created