first pass at rebase operation