move some definitions around
initial commit