add frontend functionality