split into two version: full and slim