frontend and a lot else. should have done other commits. oops