fix bug and add 404