frontend refactor... starting to get in shape