add factory
factory and simple examples