add/edit new challenge + API improvements