core scripts and setup