provide way to add user-data methods
provide more syntax for the inner product