extract IBuilder and add BuilderFactory
add ErlLogger.trace, to log usage of different parts