frontend refactor done