most of the front end done