added geometry, typedef and utils