added virtual domain support
fixed merge issues related to virtual domain
added attribute for map, I use regexp instead of hash