All front end done, TODO: tweak