...
added canonical functionality