a second try at frontend