* refactor * update general optim sections * update more sections * few more updates * benchmark code