engine refactor hide concept of submesh