Added command pattern, builder improvements