added linear stuff