feat: add live reload support #12