copy from ass1