Enterprise Version
everything is very complicated