refactore add split surfaces functionality