swan model
delete unused