fucking SWG needs rewrite