add transit layer and options. fix singleton class