Work forward refactored