Refactor for #157, #255, #260