added hot module replacement, fixes #26