move some functionality around