setup script & modulized