some work on makeing it more incremental