builder design pattern added