make compile/link logic self-contained inside Slice