use relative (path dependent) return types where possible