using frameworks to do a lot of heavy lifting