do not use constructor to enable archs, so code is more portable. suggested by Alex Ionescu