Review handling

Makes better use of callbacks to ensure that data integrity is maintained.