finished most of frontend for #1 some of #3