mostly done!!!