split shared into shared and terminal