lot of #homework to do...