fix hole attached to shell issue. add tests for it