start from almost scratch