optimize action
changes
main algorithm
relations and stuff