Issue #3: frontend