improve: convert scripts to a gem