implement choice of geometry