refactor
Incomplete (but better) namespace support