Issue #13: URL-based launcher + some cleanup